It is not unusual for distributed teams to work together virtually in a team space. Typical collaborative activities involve the development of a software asset, as well as consumption of the asset in a way that is cost effective. There are many social networking software programs and other tools that allow an asset provider and asset consumers to connect or collaborate through computer technology. Often, conventional collaboration takes place in more than one team area of the same project corresponding to the asset that is produced. For example, a project may use team room, a wiki, and a blog (or some other collaboration space) to reach out to the appropriate user community. Information about a software asset can be duplicated in all these places, and users may need to monitor all applicable communication channels to ensure the integrity of information published. The benefits of social networking tools sometimes also bring the challenges for users to identify which team areas are indeed worth close monitoring and which team areas only warrant casual engagement.
A social networking service is often a web based internet/intranet collaboration/information sharing service. The shared information is often accessible to the public. Additionally, other people with similar interests can view the information by category or tags of a folksonomy. Most conventional social networking services have algorithms to implement the concept of inference from the tag by examining the clustering of particular tags and, hence, finding relationship between one another. An important element in most of these services is the concept of a person's community, which means providing a way to rank query results based on the person's social network, which includes direct associates and more distant associates separated by degrees. Most of these conventional social networking services provide aggregate news feeds of places, filtered by tags, that a person's social network finds interesting. Many conventional social networking services also provide ways to attach comments and/or ratings to items indexed by the tags. It should be noted that the tags themselves also have a community, which includes the collection of people who use a tag to describe an object. Similarly, the objects also have a community, which includes the people who tag a particular object.
Given the successes of the open source software (OSS) approach to software development, many firms have started to implement the best practices of OSS to traditional closed-source development. An open collaborative development approach enables a single firm to leverage skills of all of its employees to benefit the entire organization, or at least a relatively large portion of the organization. With an open collaborative environment for development teams, harvesting software assets for reuse (e.g., in derivative applications) is facilitated and often encouraged. However, the ability to reuse a software asset can be complicated by a users' inability to make a meaningful decision whether a software asset is appropriate to reuse. While feedback or input from fellow consumers may be solicited by the developers of the software asset, the usefulness of the feedback received can be questionable because of the limited response. Hence, the feedback does not necessarily provide an indication of consumer priorities for updates to the software asset.
Also, in a community based development environment, one of the biggest challenges is the ability for the consumers of a software asset to be able to provide useful feedback to the provider of that asset. Sharing useful feedback among peers within the community based development environment is also a challenge. Rather than receive critical feedback during the development cycle of the software asset, it is typical to receive feedback from consuming users after the software is substantially or fully developed.
For example, a consumer may determine that the software does not meet the consumer's expectations. Additionally, the discovery of a deficiency in the operability of the software asset may occur late in the development cycle. Alternatively, a deficiency may be discovered after a significant amount of time and money is invested to integrate the software asset into other applications.
The asset provider, on the other hand, often requests comprehensive feedback to be submitted early and often so appropriate resources can be allocated to work on issues that might arise. However, most software development projects do not receive substantial input in a timely manner to gauge changes that may be incorporated into the software asset. To facilitate this kind of feedback and asset development, interaction of the various parties within the community related to the software asset is encouraged. One type of useful interaction is the use of surveys to request and provide feedback about a particular software asset. In order for the survey to be meaningful, the survey responses should include enough survey samples to harvest useful information. Unfortunately, many surveys do not produce substantial results because of the lack of enough survey responses or difficulty in evaluating the quality of the survey responses.